Service-rate discipline comes naturally in synchronous circuit-switching. In ATM, service rate controllers are needed to regulate the service rate for connections or classes of connections. A class may include several connections of similar traffic descriptors, or may represent a single connection of a high bit rate.
Some of the requirements of the service-rate controller are:
high capacity (large number of classes) PA1 high performance (low jitter) PA1 high speed PA1 simplicity/low cost PA1 robustness: low error probability/easy error recovery.
The controller may be either frequency domain based, where the main controller parameter is the sampling rate per class, or time-domain based, where the main controller parameter is the sampling interval per class.
The generic problem of service rate control may be stated as follows: a link of fixed capacity is shared by a number of traffic streams which are allocated separate queues. The streams may share the link according to one of many policies, such as a fixed rate per stream, or a guaranteed minimum rate per stream. In any of these policies, the maximum number of cells that a queue may transfer to the link in a single transaction (i.e., in a contiguous period) may be limited to a predetermined bound. The use of large bounds has the advantage of simplifying the rate-control implementation, at the expense of increasing the cell-delay variation. The schemes depicted in FIGS. 1 and 2, show the use of contiguous allocations for an example of four queues for four traffic streams A, B, C and D. The relative allocations are identical for the two schemes shown. However, the scheme of FIG. 1 with the smaller queue-access time yields better performance. The spaced-allocations scheme of FIG. 3 yield better performance for delay-sensitive traffic. In this Figure, each partition is one cell wide. When the number of cells waiting in a queue is less than the limit allocated for the queue, the number of cells transferred from the queue is the lesser of the permissible number and the number of cells waiting in the queue. If the allocations are spread as in FIG. 3, the jitter-performance improves at the expense of a larger number of partitions, and hence increased controller complexity.
The traffic may comprise protected and unprotected streams. The protected streams are promised a specified quality-of-service (QOS) while the unprotected streams must rely on chance (or best effort). One of the main QOS "guarantees" is a delay-jitter bound. When numerous classes with arbitrary sampling frequencies (or intervals) share a link, the sampling instants of two or more classes may coincide and an undesirable sampling frequency modulation becomes unavoidable. The modulation depth may be reduced with appropriate service disciplines and load-level controls.
(a) Rate Control Options
Two rate control disciplines can be realized and are of interest here. The first is the fixed service rate per class, and the second is the guaranteed minimum service rate per class. The former applies to delay-sensitive traffic and the latter applies to delay-tolerant traffic. We consider the manageable case where the sum of the class allocations equals the link rate, and we introduce a complementing NULL class which is allocated any unassigned capacity. In the fixed service rate scheme, idle time slots are given to unprotected traffic streams, thus the protected classes are guaranteed a uniform service rate. In the guaranteed minimum service rate scheme, any unused slots by a given protected class may be given to another protected class. Thus, the service rate for each protected class is at least equal to the allocated service rate. The fixed service rate scheme must be used with delay-sensitive traffic. The guaranteed minimum service rate scheme can introduce jitter and may only be used with delay-tolerant traffic which is sometimes called non-real-time traffic.
(b) Null Class
The sum of the allocated service rates of all classes must be equal to the link rate. When this condition is not satisfied, a null class (e.g. class 0) is introduced and allocated the unused capacity. The null class may donate its time to selected classes.
(c) Two-level Controller
With a fixed service rate per class, the unused time slots may be used by unprotected traffic, e.g., UBR (unspecified bit rate) traffic.
A two-level controller constitutes a fixed service rate (or constant sampling interval) primary controller and a guaranteed minimum service rate (or variable sampling interval) secondary controller. FIG. 4 shows the allocations for the primary controller serving four classes and FIG. 5 the allocations for the secondary controller serving seven classes. Both controllers can allocate null class (class 0). The service periods are shown as contiguous periods for clarity purposes; the actual service slots would be dispersed as in FIG. 3. The primary classes may include CBR traffic or VBR traffic with preserved peak rate or other stringent real-time requirements. A null class in the primary controller may be used to guarantee a minimum service rate for the secondary classes. The secondary classes are for delay-tolerant traffic streams. A null class in the secondary controller may be used to guarantee a minimum (courtesy) service rate for UBR-like traffic. The concept may be extended to a multi-level controller. It is noted that if the secondary classes are to share their unused time slots, their performance difference decreases and they may even behave as a single class.
(d) Weighted Round Robin Scheme: The Generic Implementation
The weighted round robin is the simplest possible implementation of a service rate controller. However, it may have poor delay performance and it is introduced here as a generic scheme for other more involved implementations.
The link is shared by K classes which are assigned service time slices x.sub.0, x.sub.1, . . . x.sub.K-1 in a time frame of a maximum duration of x.sub.0 +x.sub.1 + . . . +x.sub.K-1 time slots. The frame duration would be constant (at maximum value) if each class uses its allocation regardless of the state (idle/busy) of its cell buffer (queue). If the frame scanning continues when an idle class is encountered, then the frame duration is variant.
(e) Sampling Frequency Adjustment to Reduce Jitter
Sampling a delay-sensitive stream at a rate higher than that specified for the stream is generally undesirable since it propagates any previously accumulated jitter to subsequent switching points. Sampling at the proper service rate is particularly useful for CBR streams since it tends to smooth the random period fluctuations. However, a very small sampling frequency increase (e.g., a relative increase of 0.01) improves the performance for two reasons. Firstly, a slight timing error may lead to sampling at a rate lower than that of the cell arrival rate which, in turn, results in buffer overflow. Secondly, with periodic sampling of several CBR classes, the sampling interval for a given class may vary due to conflict with other classes and a small increase in sampling frequency (i.e., a slightly reduced sampling interval) would be useful.